#ifndef TRANSACTION_HH
#define TRANSACTION_HH

#include <string>


class Transaction {
private:
    std::string transactionId;  // Unique transaction ID
    double amount;             // Transaction amount
    std::string type;          // Transaction type (e.g., Deposit, Withdrawal)
    std::string note;          // Optional transaction note
    std::string date;          // Timestamp of transaction
    static unsigned long nextId; // Global transaction ID counter

public:
    Transaction(const std::string& id, double amt, const std::string& transactionType, const std::string& transactionNote);
    std::string getTransactionId() const { return transactionId; }
    double getAmount() const { return amount; }
    std::string getType() const { return type; }
    std::string getNote() const { return note; }
    std::string getDate() const { return date; }
    static unsigned long getNextId() { return nextId++; }
};


#endif // TRANSACTION_HH